How will I do that project
Since the project is nicely divided in seven items I’ll focus on one item at a time. I have already started working on the “Graphing of data”. My progress can be seen athttp://www.pcs.cnu.edu/~rcaton/ESUG/ESUG.html. I’ll attack each one of the seven items in a particular order (see “Suggested timeline…” below to see the order I propose).
To develop this project I will be in touch with the community. They’ve already been very open to questions and suggestions from me, so I feel very comfortable regarding this aspect. I think this is really important if I want my code to help the community, and it’s not an easy task: in fact, it can be intimidating to speak with some of the very experienced people in the Etoys community. In that regard, I feel very lucky :)
What methodologies will I use
I will use an iterative/incremental approach like scrum which comes in naturally as I have a long backlog already prioritized by my mentors. I will work in iterations of 3 weeks and release the result to the mentors for end user testing. I will write as many examples as possible to show how the new Etoys and/or the underlying morphs can be used, and write SUnitTestCases for complex APIs. Based on the review of my results after each iteration by the mentors I will improve the results or continue with the next item in my backlog.
Suggested timeline and milestones
The project is already divided in seven parts so I think I will use them as milestones. The following order is just tentative. The actual order may change depending on my current interests and/or the community needs.
Graphing of Data ------> finished by April 16
Better translation support ------> finished by May 7
Wider font support ------> finished by May 28
EtoyMaker ------> finished by June 11
Input/Output of Data From/To Files ------> finished by July 2
Etoys paint tool ------> finished by July 23
Learner and Teacher Feedback ------> finished by August 9
Where I see the risks
The only risk I see with this project is related to the translation and font parts because I am less familiar with how these work. However, I have managed to learn Smalltalk coding of Etoys on my own and I’m very enthusiastic about investigating and learning.
For the rest, I feel very comfortable because I have had some experience in those fields before. I've developed Physical Etoys (http://tecnodacta.com.ar/gira/projects/physical-etoys/), an extension to Etoys that permits the user to interact with real world objects such as Arduino boards or Lego Mindstorms Nxt robots among others. Physical Etoys has been well-received by the community and it’s already in use in some schools.
Overall, I feel confident that I can complete the project as outlined.
How the results will look like
In my opinion, the end results must be integrated smoothly with the rest of Etoys. It must respect the Etoys philosophy and make abstract concepts concrete and tangible objects. That is (at least for me) the most important requirement. Contact with my mentors and the Etoys community will help me in this regard.
In order to achieve that I would need to develop different objects for each project. For instance, the “Graphing of data” will be implemented as an Etoy object with specific tiles to draw data, manage grid parameters and so on. For the “Data from/to files” part I will investigate existing Etoys resources to visualize data (such as Skeleton) and see how well they interact with the rest of Etoys. For the “Etoys Paint tool” I will use existing implementations of painting tools intended for children (i.e. Scratch paint tool, Tux Paint, among others) as examples. Every project is different and must be treated as so. When completed the tools will be integrated into the current Etoys image so they are available to the Etoys community.